#ifndef SCREEN_H_
#define SCREEN_H_

// INCLUDES //
#include "SDL/SDL_image.h"
#include "surface.h"
//////////////

/**
* A wrapper to SDL's screen functionality.
* 
* @author dfoelber
**/
class Screen
{
public:
	/**
	* Constructor
	**/
	Screen();
	
	/**
	* Destructor
	**/
	~Screen();
	
	/**
	* Shows the screen, initializes surfaces, and centers the screen.
	* 
	* @param width screen width
	* @param height screen height
	* @param depth screen color depth
	* @return success
	**/
	bool Show( int width, int height, int depth );
	
	/**
	* Gets the screen's surface
	* 
	* @return screen's surface
	**/
	Surface* GetSurface();
	
	/**
	* Toggles between full screen and windowed mode.
	*/
	void ToggleFullScreen();
	
	/**
	* Performs a full screen update (slow).
	*/
	void Update();
	
private:
	/// The screen's surface.
	Surface*		surface;
};

#endif /*SCREEN_H_*/
